Skip to content

Add Erdős Problem 1175 (triangle-free subgraph of uncountable chromatic graph)#3786

Open
henrykmichalewski wants to merge 5 commits into
google-deepmind:mainfrom
henrykmichalewski:add-problem-1175
Open

Add Erdős Problem 1175 (triangle-free subgraph of uncountable chromatic graph)#3786
henrykmichalewski wants to merge 5 commits into
google-deepmind:mainfrom
henrykmichalewski:add-problem-1175

Conversation

@henrykmichalewski
Copy link
Copy Markdown
Member

Formalises Erdős Problem 1175: does every graph of uncountable chromatic number contain a triangle-free subgraph of uncountable chromatic number?

Contents

  • Main open theorem using chromaticCardinal from upstream.
  • Shelah consistency variant: the negative direction is consistent for $\kappa = \lambda = \aleph_1$.
  • Threshold reformulation of the problem.

Assisted by Claude (Anthropic).

…atic graph

Formalises Problem 1175 asking whether every graph of uncountable
chromatic number has a triangle-free subgraph of uncountable chromatic
number. Uses chromaticCardinal from upstream, and records Shelah's
consistency result for the negative direction when κ=λ=ℵ₁ together
with a threshold reformulation.

Reference: https://www.erdosproblems.com/1175
Assisted by Claude (Anthropic).
@github-actions github-actions Bot added the erdos-problems Erdős Problems label Apr 16, 2026
@henrykmichalewski
Copy link
Copy Markdown
Member Author

Closes #1998

Mirrors the Round C docstring pass from the private repo's
phase1-infrastructure branch. Each Lean file now carries the
canonical source statement and upstream URL inline so reviewers
can verify formalization against the source without navigating
away from the diff.
∀ (κ : Cardinal), ℵ₀ < κ →
∃ (μ : Cardinal),
∀ (V : Type*) (G : SimpleGraph V), G.chromaticCardinal = μ →
∃ (H : G.Subgraph), H.coe.CliqueFree 3 ∧ κ ≤ H.coe.chromaticCardinal := by
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does the source ask for a triangle-free subgraph with chromatic number exactly κ? This conclusion only requires κ ≤ H.coe.chromaticCardinal, which is a weaker/different formulation unless there is a reason to use at least. Could you either use equality or add a note explaining why the ≥ κ version is intended?

wrapping as a `sorry`.
-/
@[category research solved, AMS 5]
theorem erdos_1175.variants.shelah_consistency :
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this consistency result be stated as an outright negation in the ambient theory? The prose says Shelah proved consistency of a counterexample, not that ZFC proves this negation. Could you encode the extra model-theoretic or axiom hypothesis explicitly, or keep this as a documented consistency placeholder rather than a bare negation?

@Paul-Lez Paul-Lez added the awaiting-author The author should answer a question or perform changes. Reply when done. label May 7, 2026
…consistency placeholder (Paul-Lez review)

Two fixes per Paul-Lez's review:
- The headline used `κ ≤ H.coe.chromaticCardinal`, but the source asks
  for a triangle-free subgraph with chromatic number EXACTLY κ. Changed
  to `H.coe.chromaticCardinal = κ` in the headline and in the
  threshold variant (and the supporting `threshold_implies_exact`).
- The Shelah consistency variant was stated as a bare ZFC negation.
  Wrapped it as `answer(sorry)` and documented that this is a
  consistency placeholder requiring an extra-axiom or model-theoretic
  encoding outside ZFC.
@henrykmichalewski
Copy link
Copy Markdown
Member Author

Thanks for the review @PaulLez. Pushed d305709 on add-problem-1175: (1) replaced κ ≤ H.coe.chromaticCardinal with H.coe.chromaticCardinal = κ in the headline and threshold variant (and in the supporting threshold_implies_exact lemma); (2) wrapped the Shelah consistency variant as an answer(sorry) consistency placeholder with a docstring noting that a faithful encoding requires either an explicit forcing-extension axiom or a meta-theoretic consistency wrapper.

Copy link
Copy Markdown
Collaborator

@mo271 mo271 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good formalization with correct math and nice Mathlib API usage! A few issues:

  1. Problem statement duplicated 4 times

The problem text appears at line 23 (verbatim quote), lines 34–36 ("Problem statement" section), lines 61–63 (erdos_1175 docstring), and paraphrased again at lines 106–109 (threshold_formulation docstring). Per project conventions, the problem should appear only once — keep the verbatim quote and remove the redundant copies. The variant docstrings should describe how they differ from the main statement, not restate it.

  1. Non-standard module docstring formatting

The module docstring uses non-standard headers: Verbatim statement (Erdős #1175, status O):, Source:, Notes: OPEN. These should be replaced with the standard format:

Reference: erdosproblems.com/1175
The "Status", "Formalization notes", etc. sections add useful context but the metadata duplication ("Source", "Notes: OPEN") should be removed.

  1. threshold_implies_exact naming

erdos_1175.threshold_implies_exact (line 156) is missing a .variants or .test prefix to match the naming pattern of the other declarations (erdos_1175.variants.shelah_consistency, erdos_1175.variants.threshold_formulation). Suggest renaming to erdos_1175.variants.threshold_implies_exact or erdos_1175.test.threshold_implies_exact.

  1. Redundant test

Test 3 (line 148, (⊥ : SimpleGraph V).CliqueFree 3) is already subsumed by Test 2 (line 142), which uses ⊥ as the witness for ∃ H : G.Subgraph, H.coe.CliqueFree 3. Consider removing the redundant standalone test.

the ⊥ subgraph witnesses triangle-freeness (though the chromatic number condition is
what makes the main problem hard). -/
@[category test, AMS 5]
example (V : Type*) (G : SimpleGraph V) : ∃ H : G.Subgraph, H.coe.CliqueFree 3 :=
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

instead of using example prefer named theorem names

@[category test, AMS 5]
example : ℵ₀ < ℵ_ 1 := by
rw [← Cardinal.aleph_zero, Cardinal.aleph_lt_aleph]
exact zero_lt_one
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
exact zero_lt_one

No need to explain what example section does.

also the example is not needed: aleph0_lt_aleph_one is already in mathlib

Per PR google-deepmind#3786 review:
- Trim module docstring: removed duplicated 'Verbatim statement' / 'Source' / 'Notes' /
  '## Problem statement' / '## Status' sections; keep only the standard *Reference:* link
  and the formalization notes.
- Trim erdos_1175 docstring: drop redundant '**Note on the answer**' bloat.
- Trim erdos_1175.variants.threshold_formulation docstring.
- Drop the duplicate aleph0_lt_aleph_one example test (already in Mathlib).
- Drop the redundant Test 3 ((⊥ : SimpleGraph V).CliqueFree 3) — subsumed by the
  triangle-free-subgraph existence test that uses ⊥ as witness.
- Promote the two remaining tests from `example` to named theorems
  erdos_1175.test.exists_triangle_free_subgraph and
  erdos_1175.test.threshold_implies_exact (the latter renamed from the
  prefix-less erdos_1175.threshold_implies_exact).

Builds cleanly:
    lake build FormalConjectures.ErdosProblems.«1175»
@henrykmichalewski
Copy link
Copy Markdown
Member Author

@mo271 — applied all 4 issues + both inline suggestions in 650833d:

  1. Statement deduplication — kept only the verbatim quote in the erdos_1175 theorem docstring; removed the ## Problem statement, ## Status, and the bloated paraphrases in the variant docstrings.
  2. Module docstring standardised — now just *Reference:* [erdosproblems.com/1175](...) plus the formalisation notes section. Dropped the Verbatim statement / Source / Notes: OPEN headers.
  3. Naming — renamed erdos_1175.threshold_implies_exacterdos_1175.test.threshold_implies_exact. The other test (formerly an example) is now erdos_1175.test.exists_triangle_free_subgraph.
  4. Redundant Test 3 removed(⊥ : SimpleGraph V).CliqueFree 3 was subsumed by the triangle-free-subgraph existence test.
  5. exampletheorem — done for both remaining tests.
  6. Dropped the aleph0_lt_aleph_one example — already in Mathlib.

Net diff: -64 / +17. Build green.

@mo271 mo271 removed the awaiting-author The author should answer a question or perform changes. Reply when done. label May 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

erdos-problems Erdős Problems

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants